package com.inifitness.tenant.core.system.service;


import java.util.List;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.inifitness.common.model.Option;
import com.inifitness.tenant.core.system.model.entity.SysDictItem;
import com.inifitness.tenant.core.system.model.form.DictItemForm;
import com.inifitness.tenant.core.system.model.query.DictItemPageQuery;
import com.inifitness.tenant.core.system.model.vo.DictItemPageVO;

/**
 * 字典接口
 *
 * @author sunjinfeng
 * @since 2023/04/4
 */
public interface SysDictItemService extends IService<SysDictItem> {

  /**
   * 字典数据项分页列表
   *
   * @param queryParams
   * @return
   */
  Page<DictItemPageVO> getDictItemPage(DictItemPageQuery queryParams);

  /**
   * 字典数据项表单
   *
   * @param id 字典数据项ID
   * @return
   */
  DictItemForm getDictItemForm(Long id);

  /**
   * 新增字典数据项
   *
   * @param dictItemForm 字典数据项表单
   * @return
   */
  boolean saveDictItem(DictItemForm dictItemForm);

  /**
   * 修改字典数据项
   *
   * @param id           字典数据项ID
   * @param dictItemForm 字典数据项表单
   * @return
   */
  boolean updateDictItem(Long id, DictItemForm dictItemForm);

  /**
   * 删除字典数据项
   *
   * @param idsStr 字典数据项ID，多个以英文逗号(,)分割
   * @return
   */
  boolean deleteDictItem(String idsStr);

  /**
   * 获取字典下拉列表
   *
   * @param typeCode
   * @return
   */
  List<Option> listDictItemOptions(String typeCode);

}
